package com.zm.tools.validate.core;

/**
 * 整数验证
 * @author zoum
 * @create 2018/6/5 17:57
 */
public class IntegerValidator {

    private final static String regex = "^\\d*$";


    /**
     * 验证 0-N 位整数
     * @param src 源字符串
     * @return
     */
    public static boolean validate(String src){
        if (src == null || src.length() == 0){
            return false;
        }

        if (src.matches(regex)){
            return true;
        }
        return false;
    }

    /**
     * 验证 0-digit 位整数
     * @param src 源字符串
     * @param digit 最大位数
     * @return
     */
    public static boolean validate(String src, int digit){
        if (src == null || src.length() == 0){
            return false;
        }

        String regexC = regex.replace("*", "{0,"+ digit +"}");
        if (src.matches(regexC)){
            return true;
        }
        return false;
    }

    /**
     * 验证 minDigit-maxDigit 位整数
     * @param src 源字符串
     * @param minDigit 最小位数
     * @param maxDigit 最大位数
     * @return
     */
    public static boolean validate(String src, int minDigit, int maxDigit){
        if (src == null || src.length() == 0){
            return false;
        }

        String regexC = regex.replace("*", "{"+ minDigit +","+ maxDigit +"}");
        if (src.matches(regexC)){
            return true;
        }
        return false;
    }
}
